﻿using Zadani09.db;
using System;
using System.Collections.Generic;
namespace Zadani09.db.DAO
{
    public interface IVstupenkaDAO
    {
      
        /*
         * Rezervace vstupenky da vstupence stav REZERVOVANA, otazka je, kdy bude mit
         * jiny stav,v dokumentaci sem to nenasel. Navic tam ma prodej vstupenky, coz je 
         * prakticky rezervace a nasledna zmena stavu na PRODANA
         * 
         * Tri metody, proto, ze nevim s cim se bude delat v budoucnu, resp. jaky 
         * format budou mit data - id uzivatele, id vystavy..atp. (jestli to budou objekty,nebo jen
         * primitiv. typy)
         */
        void rezervuj(Uzivatel vstupenkaUzivatel, Vystava vstupenkaVystava, Vstupenka vstupenka);
        void rezervuj(string idUzivatele, string idVystavy, Vstupenka vstupenka);
        void rezervuj(Vstupenka vstupenka);
       
        //jelikoz nema vstupenka ID a jeji "id" je prakticky slozeno
        //ze tri hodnot - id uzivatele, id vystavy, datumu tak bude nutne 
        //pro hledani zadavat vsechny tri parametry

        Vstupenka load(string idUzivatele, string idVystavy, DateTime datum);
        void update(Vstupenka nova);
        void delete(Vstupenka vstupenka);

        //nahraje list vsech vstupenek v db
        List<Vstupenka> nahrejVsechnyVstupenky(int odkud, int kolik);
        //nahraje list rezervovanych vstupenek urciteho uzivatele
        List<Vstupenka> nahrejListVsupenekProUzivatele(int idUzivatele);

    }
}
